﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Microsoft.Practices.Unity;
using Autocentro.BussinesLogic;
using Autocentro.Entities;

namespace Autocentro.UI
{
    public partial class FrmMttUnidadMedida : Form
    {
        [Dependency]
        public IUnidadMedidaBL UnidadMedidaBL { get; set; }
        
        bool IsNew = true;

        public FrmMttUnidadMedida()
        {
            InitializeComponent();
            this.BuildUp();
        }
        public void AddUnidadMedida()
        {
            uNIDAD_MEDIDABindingSource.AddNew();
        }
        public UNIDAD_MEDIDA CuUnidadMedida { get; set; }

        public void UpdateUnidadMedida()
        {
            IsNew = false;
            uNIDAD_MEDIDABindingSource.DataSource = CuUnidadMedida;
        }


        private void btnGuardar_Click(object sender, EventArgs e)
        {
            var unidad = uNIDAD_MEDIDABindingSource.Current as UNIDAD_MEDIDA;
            var msg = "ERROR";
            if (unidad != null)
            {
                unidad.Descripcion = descripcionTextBox.Text.ToUpper();
                unidad.Abreviatura = abreviaturaTextBox.Text.ToUpper();

                if (IsNew)
                {
                    try
                    {
                        UnidadMedidaBL.AddUnidadMedida(unidad);
                        MessageBox.Show("Registro Correcto", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.Close();
                    }
                    catch (Exception ex)
                    {
                        msg = ex.Message;
                        MessageBox.Show(msg, "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
                else
                {
                    try
                    {
                        UnidadMedidaBL.UpdateUnidadMedida(unidad);
                        UpdateUnidadMedida();
                        MessageBox.Show("Modificación Correcta", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.Close();
                    }
                    catch (Exception ex)
                    {
                        msg = ex.Message;
                        MessageBox.Show(msg, "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }

            
        }

        private void descripcionTextBox_KeyPress(object sender, KeyPressEventArgs e)
        {
            string cadena = Convert.ToString("-") + Convert.ToString("/") + Convert.ToString(".") + Convert.ToString(",") + (char)8;

            if (Char.IsLetter(e.KeyChar) || cadena.Contains(e.KeyChar) )
            {
                e.Handled = false;
            }
            else if (Char.IsControl(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsSeparator(e.KeyChar))
            {
                e.Handled = false;
            }
            else
            {
                e.Handled = true;
            }

        }

        private void abreviaturaTextBox_KeyPress(object sender, KeyPressEventArgs e)
        {
            string cadena = Convert.ToString("-") + Convert.ToString("/") + Convert.ToString(".") + Convert.ToString(",") + (char)8;

            if (Char.IsLetter(e.KeyChar) || cadena.Contains(e.KeyChar) )//|| (char.IsNumber(e.KeyChar)))
            {
                e.Handled = false;
            }
            else if (Char.IsControl(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsSeparator(e.KeyChar))
            {
                e.Handled = false;
            }
            else
            {
                e.Handled = true;
            }
        }
    }
}
